public class TrappingRainWater {

	public int trap(int[] A) {
		int n = A.length;
		int i = 0, j = n - 1;
		int sum = 0;
		while (i < j) {
			if (A[i] < A[j]) {
				sum += A[i] > A[i + 1] ? (A[i] - A[i + 1]) : 0;
				A[i + 1] = Math.max(A[i], A[i + 1]);
				i++;
			} else {
				sum += A[j] > A[j - 1] ? (A[j] - A[j - 1]) : 0;
				A[j - 1] = Math.max(A[j], A[j - 1]);
				j--;
			}
		}
		return sum;
	}

	public static void main(String[] args) {

	}

}
